﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using BUS;
using DTO;
namespace WebChamCong
{
    public partial class _Default : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        private void MessageBox(string msg)
        {
            Label lbl = new Label();
            lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>";
            Page.Controls.Add(lbl);
        }

         protected void Button1_Click(object sender, EventArgs e)
         {
             try
             {
                 // kiểm tra null
                 if ((tbUsername.Text == "") || (tbPassword.Text == ""))
                 {
                     MessageBox(Properties.Settings.Default.ms_loginFailed);
                 }
                 else
                 {
                     // mã hóa mật khẩu text
                         DTO.AccountDTO tk = new AccountDTO();
                         tk.Fullname = tbUsername.Text;
                         tk.Pass = BUS.AccountBUS.MaHoaMD5(tbPassword.Text);
                     // kiểm tra user có phải administrator
                     if (tk.Fullname == "administrator")
                     { 
                         DTO.AccountDTO kq = BUS.AccountBUS.getAccloginadmin(Properties.Settings.Default.id_Admin, tk.Pass);
                         // kiểm tra đăng nhập kq != null
                         if (Convert.ToString(kq) != "")
                         {
                             Session["fullname"] = Properties.Settings.Default.Admin;
                             Session["username"] = Properties.Settings.Default.Admin;
                             Session["userID"] = kq.Id;
                             Session["departmentID"] = 1;
                             BUS.AccountBUS.setAccStatus(kq.Id, (int)DTO.AccountDTO.accStatusE.online);
                             Session.Timeout = Properties.Settings.Default.ss_timeOut;
                             Response.Redirect("Index.aspx");
                         }
                         else // ngược lại
                         {
                             MessageBox(Properties.Settings.Default.ms_UNameUPassFailed);
                         }
                     }
                     else // nếu username không phải administrator
                     {
                         
                         DTO.AccountDTO kq = BUS.AccountBUS.getAcclogin(tk.Fullname, tk.Pass);
                         // kiểm tra đăng nhập !null
                         if (Convert.ToString(kq) != "")
                         {
                             DTO.UserRoleDTO sss = BUS.UserRolesBUS.getRoleByUserID(kq.Id);
                             Session["username"] = kq.Name;
                             Session["userID"] = kq.Id;
                             Session["fullname"] = kq.Fullname;
                             Session["departmentID"] = sss.Action.ToString();
                             BUS.AccountBUS.setAccStatus(kq.Id, (int)DTO.AccountDTO.accStatusE.online);
                             Session.Timeout = Properties.Settings.Default.ss_timeOut;
                             string str1=sss.Action.ToString();
                             string[] str = str1.Split('&');
                             if (str.Count() == 1)
                             {
                                 DTO.RoleDTO dd = BUS.RolesBUS.getRoleByID(int.Parse(str[0]));
                                 if (dd.UserRoles == "-1")
                                 {
                                     Response.Redirect("EmployeeDetails.aspx?id="+kq.Id+"&month="+DateTime.Now.Month+"&year="+DateTime.Now.Year);
                                 }
                             }
                             Response.Redirect("index.aspx");
                         }
                         else // ngược lại đăng nhập thất bại
                         {
                             MessageBox(Properties.Settings.Default.ms_UNameUPassFailed);
                         }
                     }
                     
                 }
             }
             catch { }
             
         }

    }
}
